<?php
//用来处理商品属性和属性值
class GoodsAttrModel extends Model{
       public function addGoodsAttr(){
       	  $data=Q("post.");
       	  if(empty($data)){
       	  	$this->error="数据不能为空";
       	  	return false;
       	  }
          //验证规则，验证必须填的内容
       	  $this->validate=array(
                array("attr_name","nonull","属性名称不能为空",2,1),
                array("is_spec","nonull","规格不能为空",2,1)
       	  	);
       	   if($this->create()){
            //验证属性名是否重复
            if(M("g_attr_class")->where(array("attr_name"=>Q("attr_name"),"add_goods_type_aid"=>Q("aid")))->find()){
                         $this->error="属性名已经存在";
                         return false;
            }
                     $model=M("g_attr_class");
                     if($ac_id=$model->add()){
                      //往属性表里面添加数据
                         $show_type=Q("show_type");//"box"执行这个变量值所以对应的函数，我们用变量函数
                         $this->$show_type($ac_id,Q("av_name"));
                        return true;
                     }else{
                           return false;
                     }
       	   }else{
       	   	return false;
       	   }
 }
 //删除属性
 function delAttrName(){
     //属性的名称删除成功；
     if(M("g_attr_class")->where(array("ac_id"=>Q("ac_id")))->del()){
      //删除属性值
      $Model=M("g_arr_value");
      if($Model->where(array("g_attr_class_ac_id"=>Q("ac_id")))->del()){
            $this->error="删除成功";
      }else{
        return false;
      }
     }else{
      return false;
     }
}
//修改属性
public function edit(){
     $data=Q("post.");
     //如果不是通过正常的渠道过来的返回出去
     if(empty($data)){
        $this->error("非法操作。。。");
        return false;
     }
     //对数据进行验证（写一个验证规则）
     $this->validate=array(
           array("attr_name","nonull","属性名不能为空",2,3),
           array("is_spec","nonull","类型不能为空",2,3),
           array("av_name","nonull","属性值不能为空",2,3)
      );
     if($this->create()){
           $_POST['ac_id']=Q("ac_id");
           //更改属性表里面的数据
           if(M("g_attr_class")->update()){
                 //更改属性值里面的数据
                 M("g_arr_value")->where(array("g_attr_class_ac_id"=>Q("ac_id")))->del();
                   $show_type=Q("show_type");
                   $this->$show_type(Q("ac_id"),Q("av_name"));
                  return true;

           }else{
                 return false;
           }
     }else{
      return false;
     }
}
 //show_type类型为input的时候
 private function input($ac_id,$attrClassData){
         p($attrClassData);
         $Model=M("g_arr_value");
         $arrValueDate=array("av_name"=>$attrClassData[0],"g_attr_class_ac_id"=>$ac_id);
         $Model->add($arrValueDate);
         return true;
 }
 //show_type类型为box的时候，往属性值表里面添加数据
private function box($ac_id,$attrClassData){
  $Model=M("g_arr_value");
  foreach($attrClassData as $arrValue){
    $attrValueDate=array("av_name"=>$arrValue,"g_attr_class_ac_id"=>$ac_id);
    $Model->add($attrValueDate);
  }
    return true;
} 

}